package com.sws.weixin.service;

import com.sws.weixin.entity.SubscribedUser;
import com.sws.weixin.entity.TestAppidSerectVO;
import org.dom4j.DocumentException;

import jakarta.servlet.ServletInputStream;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Map;

/**
 * @author Thor
 * @公众号 Java架构栈
 */
public interface WxService {
    /**
     * 处理微信消息
     * 
     * @param inputStream 输入流
     * @param request 请求
     * @return 回复消息
     */
    String handleMessage(ServletInputStream inputStream, HttpServletRequest request) throws IOException, DocumentException;

    /**
     * 获取用户信息
     * 
     * @param code 微信授权码
     * @return 用户信息页面
     */
    String getUserInfo(String code) throws IOException, DocumentException;

    /**
     * 获取用户注册信息
     * 
     * @param code 微信授权码
     * @return 注册页面
     */
    String getSignUpUserInfo(String code);

    /**
     * 绑定微信用户到顾客
     * 
     * @param name 姓名
     * @param phone 手机号
     * @param openid 微信openid
     * @return 绑定结果
     */
    Map<String, Object> bindWxUserToCustomer(String name, String phone, String openid);
    
    /**
     * 测试应用程序配置
     * 
     * @return 配置信息
     */
    TestAppidSerectVO testapplicatio();
    
    /**
     * 处理工作人员认证信息获取
     * 
     * @param code 微信授权码
     * @return 认证结果页面
     */
    String getStaffAuthUserInfo(String code);
    
    /**
     * 绑定微信用户到工作人员
     * 
     * @param name 姓名
     * @param phone 手机号
     * @param openid 微信openid
     * @return 绑定结果
     */
    Map<String, Object> bindWxUserToStaff(String name, String phone, String openid);
    
    /**
     * 获取技师顾客管理页面
     * @param code 微信授权码
     * @return 技师顾客管理页面
     */
    String getStaffManage(String code);
    
    /**
     * 获取顾客预约管理页面
     * @param code 微信授权码
     * @return 顾客预约管理页面
     */
    String getCustomerReservation(String code);
}
